package com.dragon.service.impl;

import com.dragon.mapper.UserDao;
import com.dragon.pojo.User;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;


public class UserServiceImpl  {


    public boolean isHasUser(String account) throws IOException {

        System.out.println("来到判断是否有这个用户");
        // 1.配置Mybatis的连接

        String resource = "mybatis-config.xml";
        //定义配置文件的路径，改成自己配置文件的路径
        System.out.println("没找到xml");
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过Resources对象中的getResourceAsStream这个静态方法，就会将上边的字符串传入后
        //返回一个字符输入流InputStream
        //注意：Resources是Mybatis提供的一个资源加载的类

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //最后就会通过SqlSessionFactoryBuilder这个对象中的build方法，将上边获取到的流传入，
        //最后获得sqlSession的工厂类：SqlSessionFactory

        /*2.获取sqlsession对象，用它来执行sql*/

        SqlSession sqlSession=sqlSessionFactory.openSession();
        System.out.println("获得了sqlSession");

        // 获取到了执行的mapper
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        System.out.println("isHasUser");
        int hasUser = mapper.isHasUser(account);
        System.out.println("找完了");
        sqlSession.close();
        return hasUser != 0;
    }

    public boolean isRightPassword(String account, String passw) throws IOException {
        // 1.配置Mybatis的连接

        String resource = "mybatis-config.xml";
        //定义配置文件的路径，改成自己配置文件的路径

        InputStream inputStream = Resources.getResourceAsStream(resource);
        //通过Resources对象中的getResourceAsStream这个静态方法，就会将上边的字符串传入后
        //返回一个字符输入流InputStream
        //注意：Resources是Mybatis提供的一个资源加载的类

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //最后就会通过SqlSessionFactoryBuilder这个对象中的build方法，将上边获取到的流传入，
        //最后获得sqlSession的工厂类：SqlSessionFactory

        /*2.获取sqlsession对象，用它来执行sql*/

        SqlSession  sqlSession=sqlSessionFactory.openSession();

        // 获取到了执行的mapper
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        System.out.println("isRightPassword");
        User u = mapper.isRightPassword(account, passw);
        System.out.println(u.toString());
        System.out.println("找完了");
        System.out.println("查找的密码"+u.getPassword());
        System.out.println("输入的密码"+passw);
        if (u == null || !passw.equals(u.getPassword())) {
            return false; //密码有错
        } else {
            return true; // 密码正确
        }
    }
}
